package com.love.travel.enums;

import java.util.ArrayList;
import java.util.List;

public enum TagCategoryEnum {

    // 大类标签
    NATURAL_LANDSCAPE("自然景观", "自然景观"),
    HUMAN_LANDSCAPE("人文景观", "人文景观"),
    MODERN_LANDMARK("现代地标", "现代地标"),
    // 体验类标签
    SIGHTSEEING_TOUR("观光游览", "观光游览"),
    LEISURE_VACATION("休闲度假", "休闲度假"),
    SPORTS_ADVENTURE("运动探险", "运动探险"),
    CULTURAL_EXPERIENCE("文化体验", "文化体验");
    private final String code;   // 编码（唯一标识）
    private final String desc;   // 描述

    TagCategoryEnum(String code, String desc) {
        this.code = code;
        this.desc = desc;
    }

    public String getCode() {
        return code;
    }

    public String getDesc() {
        return desc;
    }

    // 根据code获取枚举实例
    public static TagCategoryEnum getByCode(String code) {
        for (TagCategoryEnum category : TagCategoryEnum.values()) {
            if (category.getCode().equals(code)) {
                return category;
            }
        }
        return null;
    }

    // 根据desc获取枚举实例
    public static TagCategoryEnum getByDesc(String desc) {
        for (TagCategoryEnum category : TagCategoryEnum.values()) {
            if (category.getDesc().equals(desc)) {
                return category;
            }
        }
        return null;
    }

    // 判断是否包含指定code的分类
    public static boolean containsCode(String code) {
        for (TagCategoryEnum category : TagCategoryEnum.values()) {
            if (category.getCode().equals(code)) {
                return true;
            }
        }
        return false;
    }

    // 判断是否包含指定desc的分类
    public static boolean containsDesc(String desc) {
        for (TagCategoryEnum category : TagCategoryEnum.values()) {
            if (category.getDesc().equals(desc)) {
                return true;
            }
        }
        return false;
    }

    // 获取所有分类的code列表
    public static List<String> getAllCodes() {
        List<String> codes = new ArrayList<>();
        for (TagCategoryEnum category : TagCategoryEnum.values()) {
            codes.add(category.getCode());
        }
        return codes;
    }

    // 获取所有分类的desc列表
    public static List<String> getAllDescs() {
        List<String> descs = new ArrayList<>();
        for (TagCategoryEnum category : TagCategoryEnum.values()) {
            descs.add(category.getDesc());
        }
        return descs;
    }
}